package com.sheng.leetcode.year2024.month08.day13;

import org.junit.Test;

/**
 * @author by ls
 * @date 2024/8/27
 * <p>
 * 3151. 特殊数组 I<p>
 * <p>
 * 如果数组的每一对相邻元素都是两个奇偶性不同的数字，则该数组被认为是一个 特殊数组 。<p>
 * 你有一个整数数组 nums。如果 nums 是一个 特殊数组 ，返回 true，否则返回 false。<p>
 * <p>
 * 示例 1：<p>
 * 输入：nums = [1]<p>
 * 输出：true<p>
 * 解释：<p>
 * 只有一个元素，所以答案为 true。<p>
 * <p>
 * 示例 2：<p>
 * 输入：nums = [2,1,4]<p>
 * 输出：true<p>
 * 解释：<p>
 * 只有两对相邻元素： (2,1) 和 (1,4)，它们都包含了奇偶性不同的数字，因此答案为 true。<p>
 * <p>
 * 示例 3：<p>
 * 输入：nums = [4,3,1,6]<p>
 * 输出：false<p>
 * 解释：<p>
 * nums[1] 和 nums[2] 都是奇数。因此答案为 false。<p>
 * <p>
 * 提示：<p>
 * 1 <= nums.length <= 100<p>
 * 1 <= nums[i] <= 100<p>
 */
public class LeetCode3151 {

    @Test
    public void test01() {
//        int[] nums = {1};
//        int[] nums = {2, 1, 4};
        int[] nums = {4, 3, 1, 6};
        System.out.println(new Solution().isArraySpecial(nums));
    }
}

class Solution {
    public boolean isArraySpecial(int[] nums) {
        int n = nums.length;
        if (n <= 1) {
            return true;
        }
        // 判断当前数组的第一个元素是奇数还是偶数
        boolean flag = nums[0] % 2 == 0;
        for (int i = 1; i < n; i++) {
            if (flag) {
                if (i % 2 == 0 && nums[i] % 2 == 1) {
                    return false;
                } else if (i % 2 == 1 && nums[i] % 2 == 0) {
                    return false;
                }
            } else {
                if (i % 2 == 0 && nums[i] % 2 == 0) {
                    return false;
                } else if (i % 2 == 1 && nums[i] % 2 == 1) {
                    return false;
                }
            }
        }
        return true;
    }
}
